package com.tesisutn.restsoft.dominio.pedido;

import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.ManyToOne;

import com.tesisutn.restsoft.dominio.direccion.Direccion;
import com.tesisutn.restsoft.dominio.excepciones.AccionIlegalException;
import com.tesisutn.restsoft.dominio.pedido.estadosPedidoDelivery.EstadoPedidoDelivery;

@Entity
public class PedidoParaDelivery extends Pedido {
	@Enumerated(EnumType.STRING)
    private EstadoPedidoDelivery estado;
    @ManyToOne
    private Direccion direccion;

    public PedidoParaDelivery(){
        estado = EstadoPedidoDelivery.Pendiente;
    }

    public void tomar() throws AccionIlegalException{
        estado.tomar(this);
    }
    
    public void preparar() throws AccionIlegalException{
        estado.preparar(this);
    }

    public void terminar() throws AccionIlegalException{
        estado.terminar(this);
    }

    public void despachar() throws AccionIlegalException{
        estado.despachar(this);
    }

    public void entregar() throws AccionIlegalException{
        estado.entregar(this);
    }

    public void anular() throws AccionIlegalException{
        estado.anular(this);
    }

    public void cancelar() throws AccionIlegalException{
        estado.cancelar(this);
    }

    public EstadoPedidoDelivery getEstado() {
        return estado;
    }

    public void setEstado(EstadoPedidoDelivery estado) {
        this.estado = estado;
    }

    public Direccion getDireccion() {
        return direccion;
    }

    public void setDireccion(Direccion direccion) {
        this.direccion = direccion;
    }
}
